import router from './router'
import store from './store'
import NProgress from 'nprogress' // Progress 进度条
import 'nprogress/nprogress.css'// Progress 进度条样式
import { Message } from 'element-ui'
import { getToken } from '@/utils/auth' // 验权
import { getUserInfo } from '@/api/login/login'



const whiteList = ['/login'] // 不重定向白名单
router.beforeEach((to, from, next) => {
  NProgress.start()
  if (getToken()) {
    if (to.path === '/login') {
      next({ path: '/' })
      NProgress.done() // if current page is dashboard will not trigger	afterEach hook, so manually handle it
    } else {
      if (store.getters.roles.length === 0) {
        store.dispatch('GetInfo').then(res => { // 拉取用户信息

          // var json = {
          //   "id":111,
          //   "parentId":12,
          //   "createTime":"2020-02-02T06:50:36.000+00:00",
          //   "title":"优惠券管理1111",
          //   "level":1,
          //   "sort":0,
          //   "name":"couponInfo",
          //   "icon":"sms-coupon",
          //   "hidden":0
          // }


          // var json2 = {
          //   "id":555,
          //   "parentId":0,
          //   "createTime":"2020-02-02T06:50:36.000+00:00",
          //   "title":"林夕",
          //   "level":0,
          //   "sort":0,
          //   "name":"xyazm",
          //   "icon":"sms",
          //   "hidden":0
          // }

          // var json3 = {
          //   "id":556,
          //   "parentId":555,
          //   "createTime":"2020-02-02T06:50:36.000+00:00",
          //   "title":"优惠券",
          //   "level":1,
          //   "sort":0,
          //   "name":"new",
          //   "icon":"sms",
          //   "hidden":0
          // }
          // var json4 = {
          //   "id":557,
          //   "parentId":556,
          //   "createTime":"2020-02-02T06:50:36.000+00:00",
          //   "title":"优惠券列表1111111111",
          //   "level":2,
          //   "sort":0,
          //   "name":"couponNew",
          //   "icon":"sms",
          //   "hidden":0
          // }
          // var json5 = {
          //   "id":558,
          //   "parentId":556,
          //   "createTime":"2020-02-02T06:50:36.000+00:00",
          //   "title":"优惠券列表21",
          //   "level":2,
          //   "sort":1,
          //   "name":"couponNew2",
          //   "icon":"sms",
          //   "hidden":0
          // }

          let menus=res.data.menus;
          // menus.push(json);

          // menus.push(json2);
          // menus.push(json3);
          // menus.push(json4);
          // menus.push(json5);
          console.log(menus)
          let username=res.data.username;
          store.dispatch('GenerateRoutes', { menus,username }).then(() => { // 生成可访问的路由表
            router.addRoutes(store.getters.addRouters); // 动态添加可访问路由表
            next({ ...to, replace: true })
          })
        }).catch((err) => {
          store.dispatch('FedLogOut').then(() => {
            Message.error(err || 'Verification failed, please login again')
            next({ path: '/' })
          })
        })
      } else {
        next()
      }
    }
  } else {
    if (whiteList.indexOf(to.path) !== -1) {
      next()
    } else {
      next('/login')
      NProgress.done()
    }
  }
})

router.afterEach(() => {
  NProgress.done() // 结束Progress
})
